package com.wondertek.poms.service.controller;

import com.wondertek.poms.common.constant.Constants;
import com.wondertek.poms.common.exception.MessageCodes;
import com.wondertek.poms.common.utils.StringUtil;
import com.wondertek.poms.common.utils.validate.ValidateFilter;
import com.wondertek.poms.common.vo.PageBean;
import com.wondertek.poms.common.vo.ResultBean;
import com.wondertek.poms.core.service.IPrdContChargeService;
import com.wondertek.poms.core.service.IPrdContService;
import com.wondertek.poms.dao.po.PrdCont;
import com.wondertek.poms.dao.po.PrdContCharge;
import com.wondertek.poms.dao.pojo.PrdContSelPojo;
import com.wondertek.poms.service.vo.PrdContChargeVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Optional;

@Api(value = "PrdContController", description = "节目")
@RestController
@RequestMapping(value="/prd-cont")
public class PrdContController {

    @Autowired
    private IPrdContService prdContService;

    /**
     * 查询直播节目列表
     * @param prdInfoId 商品包id
     * @param contentId 内容id
     * @return 直播节目列表
     */
    @ApiOperation(value = "单集预告", notes = "单集预告")
    @GetMapping("/get-preview-list")
    @ResponseBody
    public ResultBean getPreviewList(String contentId, String prdInfoId,String contentFrom){

        return null;
    }

    /**
     * 查询直播节目列表
     * @param prdInfoId 商品包id
     * @param contentId 内容id
     * @return 直播节目列表
     */
    @ApiOperation(value = "直播节目列表", notes = "直播节目列表")
    @GetMapping("/get-live-play-list")
    @ResponseBody
    public ResultBean getLivePlayList( String prdInfoId,String contentId) {

        return null;
    }

    /**
     * 查询直播节目"单"列表
     * @param prdInfoId 商品包id
     * @param contentId 内容id
     * @return 直播节目"单"列表
     */
    @ApiOperation(value = "直播节目单列表", notes = "直播节目单列表")
    @GetMapping("/get-live-playbill-list")
    @ResponseBody
    public ResultBean getLivePlaybillList( String prdInfoId,String contentId) {

        return null;
    }

    /**
     * 节目列表查询
     *
     * @param prdContSelPojo 查询参数接收vo
     * @param page            页数
     * @param rows            记录数
     * @param sord            排序方式
     * @param sidx            排序列
     * @return 分页后的规则列表
     */
    @ApiOperation(value = "节目列表", notes = "节目列表")
    @GetMapping("/list")
    @ResponseBody
    public ResultBean list(
            PrdContSelPojo prdContSelPojo,
            @RequestParam(defaultValue = "1") int page,
            @RequestParam(defaultValue = "20") int rows,
            @RequestParam(defaultValue = "desc") String sord,
            @RequestParam(defaultValue = "c.CREATE_TIME") String sidx) {

        return null;
    }

    /**
     * 节目详情查询
     *
     * @param prdContId 节目id
     * @return 分页后的规则列表
     */
    @ApiOperation(value = "节目详情查询", notes = "节目详情查询")
    @GetMapping("/get-details")
    @ResponseBody
    public ResultBean getDetails(@RequestParam String prdContId) {

        return null;
    }

    /**
     * 节目详情查询
     *
     * @param prdContId 节目id
     * @return 分页后的规则列表
     */
    @ApiOperation(value = "补全缺集", notes = "补全缺集")
    @GetMapping("/add-miss")
    @ResponseBody
    public ResultBean addMiss(
            @RequestParam Long prdContId) {
        if(StringUtil.isNullStr(prdContId)){
            ResultBean.error("剧集壳id不能为空");
        }
        PrdCont prdCont = prdContService.getPrdContByPrdContId(prdContId);
        if(prdCont == null ){
            ResultBean.error("剧集壳id不存在");
        }
        if(!"6".equals(prdCont.getFormType())){
            ResultBean.error("节目id不为剧集壳");
        }
        return null;
    }

}
